package com.haisen.service;

import com.dingtalk.api.response.*;
import com.haisen.dataobject.entity.DingReport;

import java.util.List;

public interface DingReportService {


    /**
     * 获取日志模板信息
     * @param start_time
     * @param end_time
     * @param template_name
     * @param userId
     * @param cursor
     * @return
     */
    String getreportTail(Long start_time, Long end_time, String template_name, String userId, Long cursor);


    /**
     * 企业可以根据员工userid或者日志模板名称，分页获取员工一段时间范围内钉钉日志应用发送的日志详细信息。
     * @param template_name
     * @param userid
     * @return
     */
    OapiReportListResponse list(Long start_time, Long end_time, String template_name, String userid, Long cursor);

    /**
     * 接口用于获取日志的已读人数、评论条数、评论人数、点赞人数。
     * @param report_id
     * @return
     */
    OapiReportStatisticsResponse  getReportStatistics(String report_id);

    /**
     * 使用该接口，可获取日志相关人员列表，包括已读人员列表、评论人员列表、点赞人员列表。
     */
    OapiReportStatisticsListbytypeResponse getReportStatisticsListbytype(String report_id, Number type);

    /**
     * 使用该接口，可分页获取日志接收人员列表。
     * @return
     */
    OapiReportReceiverListResponse getReportReceiverList(String report_id);

    /**
     * 使用该接口，可分页获取评论详情，包括评论人userid、评论内容、评论时间。
     * @param report_id
     * @return
     */
    OapiReportCommentListResponse getReportCommentList(String report_id);

    /**
     * 获取用户日志未读数
     * @param userid
     * @return
     */
    OapiReportGetunreadcountResponse getReportGetunreadcount(String userid);
    /**
     * 获取用户可见的日志模板
     */
    OapiReportTemplateListbyuseridResponse getReportTemplateListbyuserid(String userid);


    /**
     * 插入到数据库
     */
      void create(DingReport dingReport);

    /**
     *list
     */
    List<DingReport> listAll();
}
